package com.pro.service;

import com.pro.pojo.SyUserOrder;

import java.util.List;

/**
 * @Author 祖铭泽
 * @date 11/9
 * @param
 * @return
 */
public interface SyUserOrderService {
    //根据订单状态、订单来源、订单支付渠道查询订单
    List<SyUserOrder> getAllOrdersByStatusSourcePay(SyUserOrder syUserOrder);

    //删除当前订单
    boolean deleteCurrentOrder(Integer orderId);

    //根据订单状态、订单来源、订单支付渠道查询订单
    List<SyUserOrder> getCourseOrdersByStatusSourcePay(SyUserOrder syUserOrder);

    //高级检索（课程名字、用户名字、用户手机号、订单号）
    List<SyUserOrder> getCourseOrdersAdvancedSearch(SyUserOrder syUserOrder);

    //高级检索（商品名字、用户名字、用户手机号、订单号）
    List<SyUserOrder> getProductOrdersAdvancedSearch(SyUserOrder syUserOrder);

    //只查询正在处理中的商品订单
    List<SyUserOrder> getProductDisposeOrdersByStatusSourcePay(SyUserOrder syUserOrder);

    //查询正在处理中的状态数量
    Integer getProductCountsByStatus(Integer status);

    //根据不同的订单状态查询不同的数据
    List<SyUserOrder> getProductDisposeOrdersByStatusPaySource(Integer status);

    //查询状态为退订的商品订单
    List<SyUserOrder> getProductSalesReturnOrders(SyUserOrder syUserOrder);

    //查询已完成的订单数量
    Integer getProductCountsByAccomplishStatus(Integer createId);

    //根据不同的状态查询当前账户订单数量
    Integer getProductCountsByStatusCreateId(SyUserOrder syUserOrder);


    //查询订单状态为退货申请的商品订单
    List<SyUserOrder> getUnsubscribeApplyProductOrdersBySourcePay(SyUserOrder syUserOrder);

    //查询订单状态为退货申请的课程订单
    List<SyUserOrder> getUnsubscribeApplyCourseOrdersBySourcePay(SyUserOrder syUserOrder);

    //高级检索（课程名字、用户名字、用户手机号、订单号）并且正在申请处理的退订商品订单
    List<SyUserOrder> getUnsubscribeApplyProductOrdersByNameAccountPhoneNum(SyUserOrder syUserOrder);

    //高级检索（课程名字、用户名字、用户手机号、订单号）并且正在申请处理的退订课程订单
    List<SyUserOrder> getUnsubscribeApplyCourseOrdersByNameAccountPhoneNum(SyUserOrder syUserOrder);

    //查询订单状态为退货中、已退货的商品订单
    List<SyUserOrder> getAcceptedUnsubscribeProductOrders(SyUserOrder syUserOrder);

    //查询订单状态为退货中、已退货的课程订单
    List<SyUserOrder> getAcceptedUnsubscribeCourseOrders(SyUserOrder syUserOrder);

    //高级检索（商品名字、用户名字、用户手机号、订单号）并且订单状态为退订中、已退订的退订商品订单
    List<SyUserOrder> getAcceptedUnsubscribeProductOrdersByNameAccountPhoneNum(SyUserOrder syUserOrder);

    //高级检索（课程名字、用户名字、用户手机号、订单号）并且订单状态为退订中、已退订的退订课程订单
    List<SyUserOrder> getAcceptedUnsubscribeCourseOrdersByNameAccountPhoneNum(SyUserOrder syUserOrder);

    //根据不同的订单状态 查询课程订单数量
    Integer getCourseOrderCounts(Integer status);

    //点击不同状态的按钮 切换不同的数据
    List<SyUserOrder> getCourseOrdersByStatus(Integer status);

    //根据不同的订单状态 查询商品订单数量
    Integer getProductOrderCounts(Integer status);

    //点击不同状态的按钮 切换不同的数据
    List<SyUserOrder> getProductOrdersByStatus(Integer status);

    //根据不同的订单状态 查询课程订单数量
    Integer getAcceptedUnsubscribeOrderCounts(Integer status);

    //根据订单id查询课程、订单、用户、优惠卷信息
    SyUserOrder getSyUserOrderById(Integer orderId);

    //根据订单id查询商品、订单、用户、优惠卷信息
    SyUserOrder getProductByOrderId(Integer orderId);

    //李佳豪
    //已完成订单总量
    int getAllOrderUpperCount();
}
